﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace LABORATORIOCAPS2LIBRES.Analisis
{

    public partial class FrmBuscarPaciente : Form
    {
        LABORATORIOEntities context = new LABORATORIOEntities();
        public Pacientes pacselec;

        const string apellido = "Apellido";
        const string localidad = "DNI";
        const string establecimiento = "Localidad";


        public FrmBuscarPaciente()
        {
            InitializeComponent();
            CargarGrilla();
            CargarComboBusqueda();

        }

        private void CargarComboBusqueda()
        {
            cmbTipoBusqueda.Items.Add(apellido);
            cmbTipoBusqueda.Items.Add(localidad);
            cmbTipoBusqueda.Items.Add(establecimiento);

            cmbTipoBusqueda.SelectedIndex = 0;
        }

        private void CargarGrilla()
        {
            dgvBuscarPaciente.DataSource = context.Pacientes;
            dgvBuscarPaciente.Columns["idpaciente"].Visible = false;
            dgvBuscarPaciente.Columns["Apellidopaciente"].Visible = true;
            dgvBuscarPaciente.Columns["Nombrepaciente"].Visible = true;
            dgvBuscarPaciente.Columns["DNIpaciente"].Visible = true;
            dgvBuscarPaciente.Columns["Fechanacpaciente"].Visible = true;
            dgvBuscarPaciente.Columns["Telpaciente"].Visible = true;
            dgvBuscarPaciente.Columns["Domiciliopaciente"].Visible = false;
            dgvBuscarPaciente.Columns["Localidad"].Visible = true;
            dgvBuscarPaciente.Columns["Protocolo"].Visible = false;
            dgvBuscarPaciente.Columns["Apellidopaciente"].HeaderText = "Apellido";
            dgvBuscarPaciente.Columns["Nombrepaciente"].HeaderText = "Nombre";
            dgvBuscarPaciente.Columns["DNIpaciente"].HeaderText = "DNI";
            dgvBuscarPaciente.Columns["Fechanacpaciente"].HeaderText = "Fecha Nac.";
            dgvBuscarPaciente.Columns["Telpaciente"].HeaderText = "Telefono";
            dgvBuscarPaciente.Columns["Localidad"].HeaderText = "Localidad";
            dgvBuscarPaciente.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
            dgvBuscarPaciente.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
            dgvBuscarPaciente.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
        }

        private void btnBuscar_Click(object sender, EventArgs e)
        {
            Buscar();

        }

        private void dgvBuscarPaciente_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            

        }

        private void txbBusqueda_TextChanged(object sender, EventArgs e)
        {
            Buscar();
        }

        private void Buscar()
        {
            if (txbBusqueda.Text == "")
            {
                CargarGrilla();
            }
            else
            {
                if (txbBusqueda.Text.Length > 2)
                {
                    try
                    {
                        string cadena = txbBusqueda.Text;

                        if (cmbTipoBusqueda.SelectedIndex == 0)
                        {
                            var busqueda = from pac in context.Pacientes
                                           where pac.Apellidopaciente.Contains(cadena)
                                           select pac;

                            dgvBuscarPaciente.DataSource = busqueda;

                        }
                        if (cmbTipoBusqueda.SelectedIndex == 1)
                        {
                            var busqueda = from pac in context.Pacientes
                                           where pac.DNIpaciente.Equals(cadena)
                                           select pac;

                            dgvBuscarPaciente.DataSource = busqueda;

                        }
                        if (cmbTipoBusqueda.SelectedIndex == 2)
                        {
                            var busqueda = from pac in context.Pacientes
                                           where pac.Localidad.Contains(cadena)
                                           select pac;

                            dgvBuscarPaciente.DataSource = busqueda;

                        }

                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    }


                }
            }
        }

        private void btnAceptar_Click(object sender, EventArgs e)
        {
            try
            {
                int pacid = Convert.ToInt32(dgvBuscarPaciente.SelectedRows[0].Cells[0].Value);
                this.pacselec = context.Pacientes.FirstOrDefault(c => c.idpaciente== pacid);
                this.Close();

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

        private void cmbTipoBusqueda_TextChanged(object sender, EventArgs e)
        {
            txbBusqueda.Text = "";
            CargarGrilla();
            txbBusqueda.Focus();
        }
    }
}
